﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using NPOI.HSSF.UserModel;
using NPOI.HPSF;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace syc.Juece.Report
{
    public partial class 月份经济目标责任年考核表 : System.Web.UI.Page
    {
        protected HSSFWorkbook hssfworkbook;

        protected double 一分厂年计划 = 0;
        protected double 一分厂N80年计划 = 0;
        protected double 二分厂油管年计划 = 0;
        protected double 二分厂套管年计划 = 0;
        protected double 五分厂年计划 = 0;
        protected double nyjiegujihua = 0;//年油管接箍计划
        protected double ntjiegujihua = 0;//年套管接箍计划
        //原料年计划
        protected double 油管光管年计划 = 0;
        protected double 套管光管年计划 = 0;
        protected double 套管N80光管年计划 = 0;
        protected double 油管接箍光管年计划 = 0;
        protected double 套管接箍光管年计划 = 0;
        protected double 成品套管接箍年计划 = 0; 


        protected double 一分厂月计划 = 0;
        protected double 一分厂N80月计划 = 0;
        protected double 二分厂油管月计划 = 0;
        protected double 二分厂套管月计划 = 0;
        protected double 五分厂月计划 = 0;
        protected double 三分厂套管接箍月计划 = 0;
        protected double 三分厂油管接箍月计划 = 0;

        //原料月计划
        protected double 油管光管月计划 = 0;
        protected double 套管光管月计划 = 0;
        protected double 套管N80光管月计划 = 0;
        protected double 油管接箍光管月计划 = 0;
        protected double 套管接箍光管月计划 = 0;
        protected double 成品套管接箍月计划 = 0; 

        //原料月完成
        protected double 油管光管月完成 = 0;
        protected double 套管光管月完成 = 0;
        protected double 套管N80光管月完成 = 0;
        protected double 油管接箍光管月完成 = 0;
        protected double 套管接箍光管月完成 = 0;
        protected double 成品套管接箍月完成 = 0;

        //原料年完成
        protected double 油管光管累计完成 = 0;
        protected double 套管光管累计完成 = 0;
        protected double 套管N80光管累计完成 = 0;
        protected double 油管接箍光管累计完成 = 0;
        protected double 套管接箍光管累计完成 = 0;
        protected double 成品套管接箍累计完成 = 0; 

        protected double y2you = 0;//二分厂月油管
        protected double y5you = 0;//五分厂月油管
        protected double y1tao = 0;//一分厂月套管
        protected double y1taoN80 = 0;//一分厂月套管
        protected double y2tao = 0;//二分厂月套管
        protected int y3yjiegu = 0;//三分厂月油管接箍
        protected int y3tjiegu = 0;//三分厂月套管接箍
     
        protected double ytao = 0;//月套管
        protected double yyou = 0;//月油管
        protected int yyjiegu = 0;//月油管接箍
        protected int ytjiegu = 0;//月套管接箍

        protected double n2you = 0;//二分厂月油管
        protected double n5you = 0;//五分厂月油管
        protected double n1tao = 0;//一分厂月套管
        protected double n2tao = 0;//二分厂月套管
        protected double n1taoN80 = 0;//一分厂月套管     
        protected int n3yjiegu = 0;//三分厂月油管接箍
        protected int n3tjiegu = 0;//三分厂月套管接箍
        protected int nyjiegu = 0;//月油管接箍
        protected int ntjiegu = 0;//月套管接箍

      
        protected double 一分厂月完成率 = 0;
        protected double 一分厂N80月完成率 = 0;
        protected double 二分厂油管月完成率 = 0;
        protected double 二分厂套管月完成率 = 0;       
        protected double 套管接箍月完成率 = 0;
        protected double 油管接箍月完成率 = 0;
        protected double 五分厂月完成率 = 0;
        //原料月完成率
        protected double 油管光管月完成率 = 0;
        protected double 套管光管月完成率 = 0;
        protected double 套管N80光管月完成率 = 0;
        protected double 油管接箍光管月完成率 = 0;
        protected double 套管接箍光管月完成率 = 0;
        protected double 成品套管接箍月完成率 = 0;

        protected double 一分厂年完成率 = 0;
        protected double 一分厂N80年完成率 = 0;
        protected double 二分厂油管年完成率 = 0;
        protected double 二分厂套管年完成率 = 0;
        protected double 套管接箍年完成率 = 0;
        protected double 油管接箍年完成率 = 0;
        protected double 五分厂年完成率 = 0;

        //原料年完成率
        protected double 油管光管年完成率 = 0;
        protected double 套管光管年完成率 = 0;
        protected double 套管N80光管年完成率 = 0;
        protected double 油管接箍光管年完成率 = 0;
        protected double 套管接箍光管年完成率 = 0;
        protected double 成品套管接箍年完成率 = 0; 

      
        protected int year;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.Month.SelectedValue = DateTime.Today.Month.ToString();
                this.Year0.Text = DateTime.Today.Year.ToString();
            }
            Button_Query_Click(null, null);
        }
        protected void WriteToFile()
        {
            DateTime d;

            d = DateTime.Today;

            Response.ContentType = "application/ms-excel";
            Response.AddHeader("content-disposition", "attachment; filename=\"" + d.ToShortDateString() + ".xls\"");
            hssfworkbook.Write(Response.OutputStream);
        }
        protected void InitializeWorkbook()
        {

            FileStream file = new FileStream(HttpContext.Current.Server.MapPath("/JueCe/模板/月经济目标责任考核表.xls"), FileMode.Open, FileAccess.Read);

            hssfworkbook = new HSSFWorkbook(file);

            DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
            dsi.Company = "陕西延长石油材料有限公司";
            hssfworkbook.DocumentSummaryInformation = dsi;

            SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
            si.Subject = "报表";
            si.Title = "陕西延长石油材料公司月份入库量统计快报";
            hssfworkbook.SummaryInformation = si;
        }
        protected void Button_Query_Click(object sender, EventArgs e)
        {
            year = int.Parse(this.Year0.Text);
            SqlConnection Conn = new SqlConnection();
            Conn.ConnectionString = ConfigurationManager.ConnectionStrings["SCMConnectionString1"].ConnectionString;
            Conn.Open();
            SqlCommand Cmd = new SqlCommand();
            Cmd.Connection = Conn;
            //获得年计划
            Cmd.CommandText = @"select isnull(一分厂产品2,0) as 一分厂,isnull(二分厂产品1,0) as 二分厂油管,isnull(二分厂产品2,0) as 二分厂套管,isnull(五分厂产品1,0) as 五分厂,isnull(三分厂产品1,0) as 月油管接箍,isnull(三分厂产品2,0) as 月套管接箍,isnull(一分厂产品4,0) as 一分厂N80 from 生产计划 where 年度='" + year + "' and 月份=0";
            SqlDataReader Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
              
                一分厂年计划 = Reader.GetDouble(0);
                二分厂油管年计划 = Reader.GetDouble(1);
                二分厂套管年计划 = Reader.GetDouble(2);
                五分厂年计划 = Reader.GetDouble(3);
                nyjiegujihua = Reader.GetDouble(4);
                ntjiegujihua = Reader.GetDouble(5);
                一分厂N80年计划 = Reader.GetDouble(6);
            }
            Reader.Close();
            //原料年计划
            Cmd.CommandText = @"select isnull(sum(油管),0) as 油管光管,isnull(sum(套管),0) as 套管光管,isnull(sum(油管接箍),0) as 油管接箍光管,isnull(sum(套管接箍),0) as 套管接箍光管,isnull(sum(成品套管接箍),0) as 成品套管接箍,isnull(sum(套管N80),0) as 套管N80光管 from 原料采购计划 where 年度='" + year + "' and 季度=0";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                油管光管年计划 = Reader.GetDouble(0);
                套管光管年计划 = Reader.GetDouble(1);
                油管接箍光管年计划 = Reader.GetDouble(2);
                套管接箍光管年计划 = Reader.GetDouble(3);
                成品套管接箍年计划 = Reader.GetDouble(4);
                套管N80光管年计划 = Reader.GetDouble(5);
            }
            Reader.Close();

            //获得月计划
            Cmd.CommandText = @"select isnull(一分厂产品2,0) as 一分厂,isnull(二分厂产品1,0) as 二分厂油管,isnull(二分厂产品2,0) as 二分厂套管,isnull(五分厂产品1,0) as 五分厂,isnull(三分厂产品1,0) as 月油管接箍,isnull(三分厂产品2,0) as 月套管接箍,isnull(一分厂产品4,0) as 一分厂N80 from 生产计划 where 年度='" + year + "' and 月份='" + this.Month.Text + "'";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {            
                一分厂月计划 = Reader.GetDouble(0);
                二分厂油管月计划 = Reader.GetDouble(1);
                二分厂套管月计划 = Reader.GetDouble(2);
                五分厂月计划 = Reader.GetDouble(3);
                三分厂油管接箍月计划 = Reader.GetDouble(4);
                三分厂套管接箍月计划 = Reader.GetDouble(5);
                一分厂N80月计划 = Reader.GetDouble(6);
            }
            Reader.Close();
            //原料月计划
            string sql = @"
            declare @油管光管月计划 float
            declare @套管光管月计划 float
            declare @套管N80光管月计划 float
            declare @油管接箍光管月计划 float
            declare @套管接箍光管月计划 float
            declare @成品套管接箍月计划 float

            select @油管光管月计划=isnull(sum(计划购进量),0) from 生产处月原料采购计划 where 原料ID=1 and 年度=@年度 and 月份=@月份
            select @套管光管月计划=isnull(sum(计划购进量),0) from 生产处月原料采购计划 where 原料ID=2 and 年度=@年度 and 月份=@月份
            select @套管N80光管月计划=isnull(sum(计划购进量),0) from 生产处月原料采购计划 where 原料ID=102 and 年度=@年度 and 月份=@月份
            select @油管接箍光管月计划=isnull(sum(计划购进量),0) from 生产处月原料采购计划 where 原料ID=3 and 年度=@年度 and 月份=@月份
            select @套管接箍光管月计划=isnull(sum(计划购进量),0) from 生产处月原料采购计划 where 原料ID=4 and 年度=@年度 and 月份=@月份
            select @成品套管接箍月计划=isnull(sum(计划购进量),0) from 生产处月原料采购计划 where 原料ID=6 and 年度=@年度 and 月份=@月份
            select @油管光管月计划,@套管光管月计划,@油管接箍光管月计划,@套管接箍光管月计划,@成品套管接箍月计划,@套管N80光管月计划";
            sql = sql.Replace("@年度", year.ToString());
            sql = sql.Replace("@月份", this.Month.Text);
            Cmd.CommandText = sql;
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                油管光管月计划 = Reader.GetDouble(0);
                套管光管月计划 = Reader.GetDouble(1);
                油管接箍光管月计划 = Reader.GetDouble(2);
                套管接箍光管月计划 = Reader.GetDouble(3);
                成品套管接箍月计划 = Reader.GetDouble(4);
                套管N80光管月计划 = Reader.GetDouble(5);
            }
            Reader.Close();
            //二分厂月油管量          
            Cmd.CommandText = @"
            declare @yc smalldatetime
            declare @ym smalldatetime
            select @yc=起始日期,@ym=截止日期 from 生产月设置 where
            年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=0 select isnull(sum(cast(入库重量 as float)),0)/1000 from 生产进度 where 分厂ID=2 and 产品类别ID=1 and 日期 between @yc and @ym";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                y2you = Reader.GetDouble(0);
            }
            Reader.Close();
            //五分厂月油管
            Cmd.CommandText = @"
            declare @yc smalldatetime
            declare @ym smalldatetime
            select @yc=起始日期,@ym=截止日期 from 生产月设置 where
            年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=0 select isnull(sum(cast(入库重量 as float)),0)/1000 from 生产进度 where 分厂ID=5 and 产品类别ID=1 and 日期 between @yc and @ym";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                y5you = Reader.GetDouble(0);
            }          
            Reader.Close();
            //一分厂月套管量
            Cmd.CommandText = @"
            declare @yc smalldatetime
            declare @ym smalldatetime
            select @yc=起始日期,@ym=截止日期 from 生产月设置 where
            年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=0 select isnull(sum(cast(入库重量 as float)),0)/1000 from 生产进度 where 分厂ID=1 and 产品类别ID=2 and 日期 between @yc and @ym";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                y1tao = Reader.GetDouble(0);
            }
            Reader.Close();
            //一分厂月套管N80量
            Cmd.CommandText = @"
            declare @yc smalldatetime
            declare @ym smalldatetime
            select @yc=起始日期,@ym=截止日期 from 生产月设置 where
            年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=0 select isnull(sum(cast(入库重量 as float)),0)/1000 from 生产进度 where 分厂ID=1 and 产品类别ID=4 and 日期 between @yc and @ym";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                y1taoN80 = Reader.GetDouble(0);
            }
            Reader.Close();
            //二分厂月套管量
            Cmd.CommandText = @"
            declare @yc smalldatetime
            declare @ym smalldatetime
            select @yc=起始日期,@ym=截止日期 from 生产月设置 where
            年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=0 select isnull(sum(cast(入库重量 as float)),0)/1000 from 生产进度 where 分厂ID=2 and 产品类别ID=2 and 日期 between @yc and @ym";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                y2tao = Reader.GetDouble(0);
            }
            Reader.Close();
            //月套管
            ytao = y1tao + y2tao;
            //三分厂月油管接箍量
            Cmd.CommandText = @"
            declare @yc smalldatetime
            declare @ym smalldatetime
            select @yc=起始日期,@ym=截止日期 from 生产月设置 where
            年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=0 select isnull(sum(磷化支数),0) from 生产进度3 where 产品类别ID=1 and 日期 between @yc and @ym";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                y3yjiegu = Reader.GetInt32(0);
            }
            Reader.Close();
            //三分厂月套管接箍量
            Cmd.CommandText = @"
            declare @yc smalldatetime
            declare @ym smalldatetime
            select @yc=起始日期,@ym=截止日期 from 生产月设置 where
            年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=0 select isnull(sum(磷化支数),0) from 生产进度3 where 产品类别ID=2 and 日期 between @yc and @ym";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                y3tjiegu = Reader.GetInt32(0);
            }
            Reader.Close();
            yyjiegu = int.Parse(y3yjiegu.ToString());
            ytjiegu = int.Parse(y3tjiegu.ToString());

            //二分厂年油管量          
            Cmd.CommandText = @"
            declare @nc smalldatetime
            declare @ym smalldatetime
            select @nc=起始日期 from 生产月设置 where 年度='" + year + "' and 月份='1' and 分厂=0 select @ym=截止日期 from 生产月设置 where 年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=2 select isnull(sum(cast(入库重量 as float)),0)/1000 from 生产进度 where 分厂ID=2 and 产品类别ID=1 and 日期 between @nc and @ym";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                n2you = Reader.GetDouble(0);
            }
            Reader.Close();
            //五分厂年油管
            Cmd.CommandText = @"
            declare @nc smalldatetime
            declare @ym smalldatetime
            select @nc=起始日期 from 生产月设置 where 年度='" + year + "' and 月份='1' and 分厂=0 select @ym=截止日期 from 生产月设置 where 年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=5 select isnull(sum(cast(入库重量 as float)),0)/1000 from 生产进度 where 分厂ID=5 and 产品类别ID=1 and 日期 between @nc and @ym";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                n5you = Reader.GetDouble(0);
            }
           
            Reader.Close();
            //一分厂年套管量
            Cmd.CommandText = @"
            declare @nc smalldatetime
            declare @ym smalldatetime
            select @nc=起始日期 from 生产月设置 where 年度='" + year + "' and 月份='1' and 分厂=0 select @ym=截止日期 from 生产月设置 where 年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=1 select isnull(sum(cast(入库重量 as float)),0)/1000 from 生产进度 where 分厂ID=1 and 产品类别ID=2 and 日期 between @nc and @ym";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                n1tao = Reader.GetDouble(0);
            }
            Reader.Close();
            //一分厂年套管N80量
            Cmd.CommandText = @"
            declare @nc smalldatetime
            declare @ym smalldatetime
            select @nc=起始日期 from 生产月设置 where 年度='" + year + "' and 月份='1' and 分厂=0 select @ym=截止日期 from 生产月设置 where 年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=1 select isnull(sum(cast(入库重量 as float)),0)/1000 from 生产进度 where 分厂ID=1 and 产品类别ID=4 and 日期 between @nc and @ym";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                n1taoN80 = Reader.GetDouble(0);
            }
            Reader.Close();

            //二分厂年套管量
            Cmd.CommandText = @"
            declare @nc smalldatetime
            declare @ym smalldatetime
            select @nc=起始日期 from 生产月设置 where 年度='" + year + "' and 月份='1' and 分厂=0 select @ym=截止日期 from 生产月设置 where 年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=2 select isnull(sum(cast(入库重量 as float)),0)/1000 from 生产进度 where 分厂ID=2 and 产品类别ID=2 and 日期 between @nc and @ym";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                n2tao = Reader.GetDouble(0);
            }
            Reader.Close();
          
            //三分厂年油管接箍量
            Cmd.CommandText = @"
            declare @nc smalldatetime
            declare @ym smalldatetime
            select @nc=起始日期 from 生产月设置 where 年度='" + year + "' and 月份='1' and 分厂=0 select @ym=截止日期 from 生产月设置 where 年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=3 select isnull(sum(磷化支数),0) from 生产进度3 where  产品类别ID=1 and 日期 between @nc and @ym";
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                n3yjiegu = Reader.GetInt32(0);            
            }
            Reader.Close();
            //三分厂年套管接箍量
            Cmd.CommandText = @"
            declare @nc smalldatetime
            declare @ym smalldatetime
            select @nc=起始日期 from 生产月设置 where 年度='" + year + "' and 月份='1' and 分厂=0 select @ym=截止日期 from 生产月设置 where 年度='" + year + "' and 月份='" + this.Month.Text + "' and 分厂=3 select isnull(sum(磷化支数),0) from 生产进度3 where  产品类别ID=2 and 日期 between @nc and @ym";

            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                n3tjiegu = Reader.GetInt32(0);
            }
            Reader.Close();
            nyjiegu = int.Parse(n3yjiegu.ToString());
            ntjiegu = int.Parse(n3tjiegu.ToString());
            //原料本月到货
            string sql1 = @"
            declare @yc smalldatetime
            declare @ym smalldatetime
            declare @油管光管月完成 float
            declare @套管光管月完成  float
            declare @套管N80光管月完成  float
            declare @油管接箍光管月完成  float
            declare @套管接箍光管月完成  float
            declare @成品套管接箍月完成  float

            select @yc=起始日期,@ym=截止日期 from 生产月设置
            where 分厂=0 and 年度=@年度 and 月份=@月份

            select @油管光管月完成=dbo.原料本期收入(@年度,@月份,1)
            select @套管光管月完成=dbo.原料本期收入(@年度,@月份,2)
            select @套管N80光管月完成=dbo.原料本期收入(@年度,@月份,102)
            select @油管接箍光管月完成=dbo.原料本期收入(@年度,@月份,3)
            select @套管接箍光管月完成=dbo.原料本期收入(@年度,@月份,4)
            select @成品套管接箍月完成=dbo.原料本期收入(@年度,@月份,6)
            select @油管光管月完成,@套管光管月完成,@油管接箍光管月完成,@套管接箍光管月完成,@成品套管接箍月完成,@套管N80光管月完成";
            sql1 = sql1.Replace("@年度", year.ToString());
            sql1 = sql1.Replace("@月份", this.Month.Text);
            Cmd.CommandText = sql1;
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                油管光管月完成 = Reader.GetDouble(0);
                套管光管月完成 = Reader.GetDouble(1);
                油管接箍光管月完成 = Reader.GetDouble(2);
                套管接箍光管月完成 = Reader.GetDouble(3);
                成品套管接箍月完成 = Reader.GetDouble(4);
                套管N80光管月完成 = Reader.GetDouble(5);
            }
            Reader.Close();

            //原料本年累计到货
            string sql2 = @"
            declare @nc smalldatetime
            declare @ym smalldatetime
            declare @油管光管累计完成 float
            declare @套管光管累计完成  float
            declare @套管N80光管累计完成  float
            declare @油管接箍光管累计完成  float
            declare @套管接箍光管累计完成  float
            declare @成品套管接箍累计完成  float
            select @nc=起始日期 from 生产月设置 where 年度=@年度 and 月份='1' and 分厂=0
            select @ym=截止日期 from 生产月设置 where 年度=@年度 and 月份=@月份 and 分厂=0

            select @油管光管累计完成=dbo.原料本年累计入库(@年度,@月份,1)
            select @套管光管累计完成=dbo.原料本年累计入库(@年度,@月份,2)
            select @套管N80光管累计完成=dbo.原料本年累计入库(@年度,@月份,102)
            select @油管接箍光管累计完成=dbo.原料本年累计入库(@年度,@月份,3)
            select @套管接箍光管累计完成=dbo.原料本年累计入库(@年度,@月份,4)
            select @成品套管接箍累计完成=dbo.原料本年累计入库(@年度,@月份,6)
            select @油管光管累计完成,@套管光管累计完成,@油管接箍光管累计完成,@套管接箍光管累计完成,@成品套管接箍累计完成,@套管N80光管累计完成";
            sql2 = sql2.Replace("@年度", year.ToString());
            sql2 = sql2.Replace("@月份", this.Month.Text);
            Cmd.CommandText = sql2;
            Reader = Cmd.ExecuteReader();
            if (Reader.Read())
            {
                油管光管累计完成 = Reader.GetDouble(0);
                套管光管累计完成 = Reader.GetDouble(1);
                油管接箍光管累计完成 = Reader.GetDouble(2);
                套管接箍光管累计完成 = Reader.GetDouble(3);
                成品套管接箍累计完成 = Reader.GetDouble(4);
                套管N80光管累计完成 = Reader.GetDouble(5);
            }
            Reader.Close();

            if (一分厂月计划 == 0)
            {
                一分厂月完成率 = 0;
            }
            else
            {
                一分厂月完成率 = (y1tao / 一分厂月计划) * 100;
            }
            if (一分厂N80月计划 == 0)
            {
                一分厂N80月完成率 = 0;
            }
            else
            {
                一分厂N80月完成率 = (y1taoN80 / 一分厂N80月计划) * 100;
            }
            if (二分厂油管月计划 == 0)
            {
                二分厂油管月完成率 = 0;
            }
            else
            {
                二分厂油管月完成率 = (y2you / 二分厂油管月计划) * 100;
            }
            if (二分厂套管月计划 == 0)
            {
                二分厂套管月完成率 = 0;
            }
            else
            {
                二分厂套管月完成率 = (y2tao / 二分厂套管月计划) * 100;
            }
            if (五分厂月计划 == 0)
            {
                五分厂月完成率 = 0;
            }
            else
            {
                五分厂月完成率 = (y5you / 五分厂月计划) * 100;
            }
            if (三分厂套管接箍月计划 == 0)
            {
                套管接箍月完成率 = 0;
            }
            else
            {
                套管接箍月完成率 = (ytjiegu / 三分厂套管接箍月计划) * 100;
            }
            if (三分厂油管接箍月计划 == 0)
            {
                油管接箍月完成率 = 0;
            }
            else
            {
                油管接箍月完成率 = (yyjiegu / 三分厂油管接箍月计划) * 100;
            }
            //------------------------------------------------------------

         
            if (一分厂年计划 == 0)
            {
                一分厂年完成率 = 0;
            }
            else
            {
                一分厂年完成率 = (n1tao / 一分厂年计划) * 100;
            }
            if (一分厂N80年计划 == 0)
            {
                一分厂N80年完成率 = 0;
            }
            else
            {
                一分厂N80年完成率 = (n1taoN80 / 一分厂N80年计划) * 100;
            }
            if (二分厂油管年计划 == 0)
            {
                二分厂油管年完成率 = 0;
            }
            else
            {
                二分厂油管年完成率 = (n2you / 二分厂油管年计划) * 100;
            }
            if (二分厂套管年计划 == 0)
            {
                二分厂套管年完成率 = 0;
            }
            else
            {
                二分厂套管年完成率 = (n2tao / 二分厂套管年计划) * 100;
            }
            if (五分厂年计划 == 0)
            {
                五分厂年完成率 = 0;
            }
            else
            {
                五分厂年完成率 = (n5you / 五分厂年计划) * 100;
            }
            if (ntjiegujihua == 0)
            {
                套管接箍年完成率 = 0;
            }
            else
            {
                套管接箍年完成率 = (ntjiegu / ntjiegujihua) * 100;
            }
            if (nyjiegujihua == 0)
            {
                油管接箍年完成率 = 0;
            }
            else
            {
                油管接箍年完成率 = (nyjiegu / nyjiegujihua) * 100;
            }
          //原料-----------------------------------------------
            if (成品套管接箍月计划 == 0)
            {
                成品套管接箍月完成率 = 0;
            }
            else
            {
                成品套管接箍月完成率 = (成品套管接箍月完成 / 成品套管接箍月计划) * 100;
            }
            if (油管光管月计划 == 0)
            {
                油管光管月完成率 = 0;
            }
            else
            {
                油管光管月完成率 = (油管光管月完成 / 油管光管月计划) * 100;
            }
            if (套管光管月计划 == 0)
            {
                套管光管月完成率 = 0;
            }
            else
            {
                套管光管月完成率 = (套管光管月完成 / 套管光管月计划) * 100;
            }
            if (套管N80光管月计划 == 0)
            {
                套管N80光管月完成率 = 0;
            }
            else
            {
                套管N80光管月完成率 = (套管N80光管月完成 / 套管N80光管月计划) * 100;
            }
            if (油管接箍光管月计划 == 0)
            {
                油管接箍光管月完成率 = 0;
            }
            else
            {
                油管接箍光管月完成率 = (油管接箍光管月完成 / 油管接箍光管月计划) * 100;
            }
            if (套管接箍光管月计划 == 0)
            {
                套管接箍光管月完成率 = 0;
            }
            else
            {
                套管接箍光管月完成率 = (套管接箍光管月完成 / 套管接箍光管月计划) * 100;
            }  
           //-----------------------------------------------------------------------------    
            if (成品套管接箍年计划 == 0)
            {
                成品套管接箍年完成率 = 0;
            }
            else
            {
                成品套管接箍年完成率 = (成品套管接箍累计完成 / 成品套管接箍年计划) * 100;
            }
            if (油管光管年计划 == 0)
            {
                油管光管年完成率 = 0;
            }
            else
            {
                油管光管年完成率 = (油管光管累计完成 / 油管光管年计划) * 100;
            }
            if (套管光管年计划 == 0)
            {
                套管光管年完成率 = 0;
            }
            else
            {
                套管光管年完成率 = (套管光管累计完成 / 套管光管年计划) * 100;
            }
            if (套管N80光管年计划 == 0)
            {
                套管N80光管年完成率 = 0;
            }
            else
            {
                套管N80光管年完成率 = (套管N80光管累计完成 / 套管N80光管年计划) * 100;
            }
            if (油管接箍光管年计划 == 0)
            {
                油管接箍光管年完成率 = 0;
            }
            else
            {
                油管接箍光管年完成率 = (油管接箍光管累计完成 / 油管接箍光管年计划) * 100;
            }
            if (套管接箍光管年计划 == 0)
            {
                套管接箍光管年完成率 = 0;
            }
            else
            {
                套管接箍光管年完成率 = (套管接箍光管累计完成 / 套管接箍光管年计划) * 100;
            }     
             
           

            Conn.Close();
            Reader.Dispose();
            Cmd.Dispose();
            Conn.Dispose();
        }

        protected void Button_Save_Click(object sender, EventArgs e)
        {
            InitializeWorkbook();
            HSSFSheet sheet1 = hssfworkbook.GetSheet("月经济目标责任考核表");
            Button_Query_Click(null, null);
            sheet1.GetRow(0).GetCell(0).SetCellValue(this.Month.SelectedItem.Text + "月份经济目标责任考核表");
      
            sheet1.GetRow(3).GetCell(3).SetCellValue(一分厂年计划);
            sheet1.GetRow(3).GetCell(4).SetCellValue(一分厂月计划);
            sheet1.GetRow(3).GetCell(5).SetCellValue(y1tao.ToString("0.000"));
            sheet1.GetRow(3).GetCell(6).SetCellValue(n1tao.ToString("0.000"));
            sheet1.GetRow(3).GetCell(7).SetCellValue(一分厂月完成率.ToString("0.00"));
            sheet1.GetRow(3).GetCell(8).SetCellValue(一分厂年完成率.ToString("0.00"));

            sheet1.GetRow(4).GetCell(3).SetCellValue(一分厂N80年计划);
            sheet1.GetRow(4).GetCell(4).SetCellValue(一分厂N80月计划);
            sheet1.GetRow(4).GetCell(5).SetCellValue(y1taoN80.ToString("0.000"));
            sheet1.GetRow(4).GetCell(6).SetCellValue(n1taoN80.ToString("0.000"));
            sheet1.GetRow(4).GetCell(7).SetCellValue(一分厂N80月完成率.ToString("0.00"));
            sheet1.GetRow(4).GetCell(8).SetCellValue(一分厂N80年完成率.ToString("0.00"));
     
            sheet1.GetRow(5).GetCell(3).SetCellValue(二分厂套管年计划);
            sheet1.GetRow(5).GetCell(4).SetCellValue(二分厂套管月计划);
            sheet1.GetRow(5).GetCell(5).SetCellValue(y2tao.ToString("0.000"));
            sheet1.GetRow(5).GetCell(6).SetCellValue(n2tao.ToString("0.000"));
            sheet1.GetRow(5).GetCell(7).SetCellValue(二分厂套管月完成率.ToString("0.00"));
            sheet1.GetRow(5).GetCell(8).SetCellValue(二分厂套管年完成率.ToString("0.00"));
 
            sheet1.GetRow(6).GetCell(3).SetCellValue(二分厂油管年计划);
            sheet1.GetRow(6).GetCell(4).SetCellValue(二分厂油管月计划);
            sheet1.GetRow(6).GetCell(5).SetCellValue(y2you.ToString("0.000"));
            sheet1.GetRow(6).GetCell(6).SetCellValue(n2you.ToString("0.000"));
            sheet1.GetRow(6).GetCell(7).SetCellValue(二分厂油管月完成率.ToString("0.00"));
            sheet1.GetRow(6).GetCell(8).SetCellValue(二分厂油管年完成率.ToString("0.00"));

            sheet1.GetRow(7).GetCell(3).SetCellValue(((ntjiegujihua * 6.1) / 1000) + "/" + ntjiegujihua);
            sheet1.GetRow(7).GetCell(4).SetCellValue(((三分厂套管接箍月计划 * 6.1) / 1000)+"/"+三分厂套管接箍月计划);
            sheet1.GetRow(7).GetCell(5).SetCellValue(((y3tjiegu * 6.1) / 1000).ToString("0.000")+"/"+y3tjiegu);
            sheet1.GetRow(7).GetCell(6).SetCellValue(((n3tjiegu * 6.1) / 1000).ToString("0.000")+"/"+n3tjiegu);
            sheet1.GetRow(7).GetCell(7).SetCellValue(套管接箍月完成率.ToString("0.00"));
            sheet1.GetRow(7).GetCell(8).SetCellValue(套管接箍年完成率.ToString("0.00"));

            sheet1.GetRow(8).GetCell(3).SetCellValue(((nyjiegujihua * 2.1) / 1000) + "/" + nyjiegujihua);
            sheet1.GetRow(8).GetCell(4).SetCellValue(((三分厂油管接箍月计划 * 2.1) / 1000)+"/"+三分厂油管接箍月计划);
            sheet1.GetRow(8).GetCell(5).SetCellValue(((y3yjiegu * 2.1) / 1000).ToString("0.000")+"/"+y3yjiegu);
            sheet1.GetRow(8).GetCell(6).SetCellValue(((n3yjiegu * 2.1) / 1000).ToString("0.000")+"/"+n3yjiegu);
            sheet1.GetRow(8).GetCell(7).SetCellValue(油管接箍月完成率.ToString("0.00"));
            sheet1.GetRow(8).GetCell(8).SetCellValue(油管接箍年完成率.ToString("0.00"));
    
            sheet1.GetRow(9).GetCell(3).SetCellValue(五分厂年计划);
            sheet1.GetRow(9).GetCell(4).SetCellValue(五分厂月计划);
            sheet1.GetRow(9).GetCell(5).SetCellValue(y5you.ToString("0.000"));
            sheet1.GetRow(9).GetCell(6).SetCellValue(n5you.ToString("0.000"));
            sheet1.GetRow(9).GetCell(7).SetCellValue(五分厂月完成率.ToString("0.00"));
            sheet1.GetRow(9).GetCell(8).SetCellValue(五分厂年完成率.ToString("0.00"));

            sheet1.GetRow(10).GetCell(3).SetCellValue(成品套管接箍年计划);
            sheet1.GetRow(10).GetCell(4).SetCellValue(成品套管接箍月计划);
            sheet1.GetRow(10).GetCell(5).SetCellValue(成品套管接箍月完成.ToString("0"));
            sheet1.GetRow(10).GetCell(6).SetCellValue(成品套管接箍累计完成.ToString("0"));
            sheet1.GetRow(10).GetCell(7).SetCellValue(成品套管接箍月完成率.ToString("0.00"));
            sheet1.GetRow(10).GetCell(8).SetCellValue(成品套管接箍年完成率.ToString("0.00"));

            sheet1.GetRow(12).GetCell(3).SetCellValue(套管光管年计划);
            sheet1.GetRow(12).GetCell(4).SetCellValue(套管光管月计划);
            sheet1.GetRow(12).GetCell(5).SetCellValue(套管光管月完成.ToString("0.000"));
            sheet1.GetRow(12).GetCell(6).SetCellValue(套管光管累计完成.ToString("0.000"));
            sheet1.GetRow(12).GetCell(7).SetCellValue(套管光管月完成率.ToString("0.00"));
            sheet1.GetRow(12).GetCell(8).SetCellValue(套管光管年完成率.ToString("0.00"));

            sheet1.GetRow(13).GetCell(3).SetCellValue(套管N80光管年计划);
            sheet1.GetRow(13).GetCell(4).SetCellValue(套管N80光管月计划);
            sheet1.GetRow(13).GetCell(5).SetCellValue(套管N80光管月完成.ToString("0.000"));
            sheet1.GetRow(13).GetCell(6).SetCellValue(套管N80光管累计完成.ToString("0.000"));
            sheet1.GetRow(13).GetCell(7).SetCellValue(套管N80光管月完成率.ToString("0.00"));
            sheet1.GetRow(13).GetCell(8).SetCellValue(套管N80光管年完成率.ToString("0.00"));
    
            sheet1.GetRow(14).GetCell(3).SetCellValue(油管光管年计划);
            sheet1.GetRow(14).GetCell(4).SetCellValue(油管光管月计划);
            sheet1.GetRow(14).GetCell(5).SetCellValue(油管光管月完成.ToString("0.000"));
            sheet1.GetRow(14).GetCell(6).SetCellValue(油管光管累计完成.ToString("0.000"));
            sheet1.GetRow(14).GetCell(7).SetCellValue(油管光管月完成率.ToString("0.00"));
            sheet1.GetRow(14).GetCell(8).SetCellValue(油管光管年完成率.ToString("0.00"));
 
            sheet1.GetRow(15).GetCell(3).SetCellValue(套管接箍光管年计划);
            sheet1.GetRow(15).GetCell(4).SetCellValue(套管接箍光管月计划);
            sheet1.GetRow(15).GetCell(5).SetCellValue(套管接箍光管月完成.ToString("0.000"));
            sheet1.GetRow(15).GetCell(6).SetCellValue(套管接箍光管累计完成.ToString("0.000"));
            sheet1.GetRow(15).GetCell(7).SetCellValue(套管接箍光管月完成率.ToString("0.00"));
            sheet1.GetRow(15).GetCell(8).SetCellValue(套管接箍光管年完成率.ToString("0.00"));
  
            sheet1.GetRow(16).GetCell(3).SetCellValue(油管接箍光管年计划);
            sheet1.GetRow(16).GetCell(4).SetCellValue(油管接箍光管月计划);
            sheet1.GetRow(16).GetCell(5).SetCellValue(油管接箍光管月完成.ToString("0.000"));
            sheet1.GetRow(16).GetCell(6).SetCellValue(油管接箍光管累计完成.ToString("0.000"));
            sheet1.GetRow(16).GetCell(7).SetCellValue(油管接箍光管月完成率.ToString("0.00"));
            sheet1.GetRow(16).GetCell(8).SetCellValue(油管接箍光管年完成率.ToString("0.00"));

            sheet1.GetRow(19).GetCell(6).SetCellValue("填报日期:" + DateTime.Now.ToString("yyyy-MM-dd"));
            WriteToFile();
            Response.End();
        }

    }
}
